// Proxy 对象

const person = {
    name: 'liuchao',
    age: 18
}

// const personProxy = new Proxy(person, {
//     // 代理处理对象

//     get(target, property){
//         return property in target ? target[property] : 'default'
//         // console.log(target, property)
//         // return 100
//     },
//     set(target, property, value){
//         if(property === 'age'){
//             if(!Number.isInteger(value)){
//                 throw new TypeError(`${value} is not an int`)
//             }
//         }
//         target[property] = value 
//         // console.log(target, property, value)
//     }
// })

// personProxy.age = 99  

// personProxy.gender = 'man'

// console.log(personProxy.name)
// console.log(personProxy.xxx)

// -----------------------------------
//  Proxy 监听对象delete属性行为
// const personProxy = new Proxy(person, {
//     deleteProperty(target, property){
//         console.log('delete', target, property)
//         delete target[property]
//     }
// })

// delete personProxy.age 
// console.log(person)

// -------––-------––-------––-------––-------––
// 如何使用Proxy对象监听数组
const list = []
const listProxy = new Proxy(list, {
    set(target, property, value){
        console.log('set', property, value)
        target[property] = value 
        return true //表示设置成功
    }
})

listProxy.push(100)










